In data processing and communication systems input and output operations represent a substantial share of the workload to be performed. Such I/O operations are time consuming and interrupt the regular task processing in the central processing units. To relief the CPUs from I/O operations special processors are used, designated as I/O adapters, which are designed to support one or more I/O devices such as disk and tape storages, communication or network devices, printers, scanners, etc. Each I/O adapter is connected through a data channel or bus to the CPU and the main memory of a computer system. The data transfer between these elements have to be organized in a manner which minimizes the interventions in the data processing flow of the CPU and simultaneously provides an efficient execution of I/O commands including read and write accesses to the maim memory.
U.S. Pat. No. 5,983,292 discloses an I/O system including a processor complex having a CPU and a main memory and being connected by a bus to an I/O adapter which serves a number of I/O devices. The system comprises message queues in the main memory which are pointing to next available memory locations where the CPU may store messages which have to be transferred via the interconnecting bus to the I/O adapter. The I/O adapter have downstream and upstream tracking registers and a message processor for tracking the locations in the main memory from which messages have be transferred to the I/O adapter or to which messages have be transferred from the I/O adapter to the processor complex. By this system the efficiency of the message transfer between the processor complex and the I/O adapter can be improved since the use of message queues reduce the CPU time required to process I/O interrupts. On the other side, the known system requires a plurality of time consuming main memory accesses.
U.S. Pat. No. 5,548,735 discloses a system for asynchronously processing of I/O store instructions. This system avoids a strict synchronization of a CPU operations with the operations of I/O adapters. A program interface is used which decouples the synchronized instructions of the CPU from the operations of the I/O adapter to allow an asynchronous completion of the instructions by the I/O adapter. The I/O program interface includes an I/O store queue which contains information for identifying the I/O store instructions to be executed.